package offer;

/**
 * @Auther ZhanBo
 * @Date 2020/5/20
 */
public class Solution25 {

    public static void main(String[] args) {
        int [] nums1= new int[]{1,2,4};
        int [] nums2= new int[]{1,3,4};
        ListNode node1 = new ListNode(nums1);
        ListNode node2 = new ListNode(nums2);
        System.out.println(mergeTwoLists(node1, node2));
    }

    /**
     * 输入两个递增排序的链表，合并这两个链表并使新链表中的节点仍然是递增排序的。
     *
     * 输入：1->2->4, 1->3->4
     * 输出：1->1->2->3->4->4
     * @param l1
     * @param l2
     * @return
     */
    public static ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        if(l1==null) { return l2; }
        if(l2==null) { return l1; }
        ListNode newNode=new ListNode(0);
        ListNode newHeadNode = newNode;
        while(l1!=null && l2!=null){
            if(l1.val>l2.val){
                newNode.next=l2;
                l2=l2.next;
            }else{
                newNode.next=l1;
                l1=l1.next;
            }
            newNode=newNode.next;
        }
        if(l1==null) { newNode.next=l2; }
        if(l2==null) { newNode.next=l1; }
        return newHeadNode.next;
    }
}
